package primaryAlgorithm.rotatRomaNumb;

import java.util.HashMap;

/**
 * @Date 2020/03/22
 * @author 王光浩
 * @Thinking 将所有罗马字符以及对应的数字保存在一个map映射中。
 */
public class MyMethodOne {
	private HashMap<Character,Integer> map; //保存所有罗马字符对应的数字值
	public int romanToInt(String s) {
		 if(s.length()==0)return 0;
		 initial();
		 int count=map.get(s.charAt(s.length()-1));
		 for(int i=s.length()-2;i>=0;i--) {
			if(map.get(s.charAt(i))>=map.get(s.charAt(i+1)))count+=map.get(s.charAt(i));
			else count-=map.get(s.charAt(i));
		 }
		 return count;		 
	}
	//将所有罗马字符存放在hash中
	private void initial() {
		map=new HashMap<Character,Integer>(10);
		map.put('I', 1);
		map.put('V', 5);
		map.put('X', 10);
		map.put('L', 50);
		map.put('C', 100);
		map.put('D', 500);
		map.put('M', 1000);
	}
}
